/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

pipeline
API OF Pipeline Create|Update|Read|Delete|Execute

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef PipelineApiModel_h
#define PipelineApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKCommon/JDCloudOCSDKCommon.h>
#import <JDCloudOCSDKPipeline/PipelineModel.h>


@interface PipelineGetOperationProvidersRequest:JDCloudRequest

/// 源提供商类型
@property (strong,nonatomic,nonnull)  NSString*  type;
-(id) initWithRegion:(NSString *)regionId
type:(NSString*)type;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
type:(NSString*)type;

@end

@interface PipelineGetRegionsRequest:JDCloudRequest

/// 源提供商类型
@property (strong,nonatomic,nonnull)  NSString*  type;
-(id) initWithRegion:(NSString *)regionId
type:(NSString*)type;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
type:(NSString*)type;

@end

@interface PipelineManualActionResult : NSObject
/// InstanceUuid
 @property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
/// ActionUuid
 @property (strong,nonatomic,nonnull)  NSString*  actionUuid;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithInstanceUuid:(NSString*) instanceUuid

    actionUuid:(NSString*)actionUuid;
@end

@interface PipelineManualActionRequest:JDCloudRequest

/// 手动设置的状态，如SUCCESS,FAILED
@property (strong,nonatomic,nonnull)  NSString*  status;
/// 流水线uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 流水线实例uuid
@property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
/// 动作UUID
@property (strong,nonatomic,nonnull)  NSString*  actionUuid;
-(id) initWithRegion:(NSString *)regionId
status:(NSString*)status
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid
actionUuid:(NSString*)actionUuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
status:(NSString*)status
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid
actionUuid:(NSString*)actionUuid;

@end

@interface PipelineStopPipelineInstanceResult : NSObject
/// InstanceUuid
 @property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
/// ActionUuid
 @property (strong,nonatomic,nonnull)  NSString*  actionUuid;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithInstanceUuid:(NSString*) instanceUuid

    actionUuid:(NSString*)actionUuid;
@end

@interface PipelineGetPipelineInstanceRequest:JDCloudRequest

/// 流水线执行的状态，如果isSimple是true，只显示每个stage的状态, 而stage中的action状态将被忽略
@property (strong,nonatomic,nonnull)  NSNumber*  isSimple;
/// 流水线uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 流水线uuid执行历史记录的uuid, 也可以用 latest 字符串代替uuid, 来取得最近的状态
@property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
-(id) initWithRegion:(NSString *)regionId
isSimple:(NSNumber*)isSimple
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
isSimple:(NSNumber*)isSimple
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid;

@end

@interface PipelineGetPipelineInstancesRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// 流水线uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
uuid:(NSString*)uuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
uuid:(NSString*)uuid;

@end

@interface PipelineStopPipelineInstanceRequest:JDCloudRequest

/// 流水线uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 流水线执行的uuid
@property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
-(id) initWithRegion:(NSString *)regionId
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
uuid:(NSString*)uuid
instanceUuid:(NSString*)instanceUuid;

@end

@interface PipelineReadFileResult : NSObject
/// Result
 @property (strong,nonatomic,nonnull)  NSNumber*  result;
/// Contents
 @property (strong,nonatomic,nonnull)  NSString*  contents;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithResult:(NSNumber*) result

    contents:(NSString*)contents;
@end

@interface PipelineGetLimitsResult : NSObject
/// 流水线数量限制
 @property (strong,nonatomic,nonnull)  NSNumber*  numberLimit;
/// 是否可以创建
 @property (strong,nonatomic,nonnull)  NSNumber*  canCreate;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithNumberLimit:(NSNumber*) numberLimit

    canCreate:(NSNumber*)canCreate;
@end

@interface PipelineDeletePipelineResult : NSObject
/// 流水线任务uuid
 @property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 删除成功则是true
 @property (strong,nonatomic,nonnull)  NSNumber*  result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithUuid:(NSString*) uuid

    result:(NSNumber*)result;
@end

@interface PipelineStartPipelineRequest:JDCloudRequest

/// 流水线uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
-(id) initWithRegion:(NSString *)regionId
uuid:(NSString*)uuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
uuid:(NSString*)uuid;

@end

@interface PipelineUpdatePipelineResult : NSObject
/// 流水线任务uuid
 @property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 更新成功则是true
 @property (strong,nonatomic,nonnull)  NSNumber*  result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithUuid:(NSString*) uuid

    result:(NSNumber*)result;
@end

@interface PipelineStartPipelineResult : NSObject
/// 本次执行生成的实例的uuid
 @property (strong,nonatomic,nonnull)  NSString*  instanceUuid;
/// 提交运行的流水线uuid
 @property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 提交任务是否成功
 @property (strong,nonatomic,nonnull)  NSNumber*  result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithInstanceUuid:(NSString*) instanceUuid

    uuid:(NSString*)uuid

    result:(NSNumber*)result;
@end

@interface PipelineGetPipelineRequest:JDCloudRequest

/// 流水线 uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
-(id) initWithRegion:(NSString *)regionId
uuid:(NSString*)uuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
uuid:(NSString*)uuid;

@end

@interface PipelineDeletePipelineRequest:JDCloudRequest

/// 流水线任务uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
-(id) initWithRegion:(NSString *)regionId
uuid:(NSString*)uuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
uuid:(NSString*)uuid;

@end

@interface PipelineCreatePipelineResult : NSObject
/// 流水线任务uuid
 @property (strong,nonatomic,nonnull)  NSString*  uuid;
/// 创建成功则是true
 @property (strong,nonatomic,nonnull)  NSNumber*  result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithUuid:(NSString*) uuid

    result:(NSNumber*)result;
@end

@interface PipelineGetSourceProvidersRequest:JDCloudRequest

@end

@interface PipelineGetOperationProvidersResult : NSObject
/// 记录数
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// Providers
 @property (strong,nonatomic,nonnull)  NSArray<NameLabelPair*>*  providers;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotalCount:(NSNumber*) totalCount

    providers:(NSArray<NameLabelPair*>*)providers;
@end

@interface PipelineGetOperationProvidersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetOperationProvidersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetOperationProvidersResult*) result;
@end

@interface PipelineGetSourceProvidersResult : NSObject
/// 记录数
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// Providers
 @property (strong,nonatomic,nonnull)  NSArray<NameLabelPair*>*  providers;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotalCount:(NSNumber*) totalCount

    providers:(NSArray<NameLabelPair*>*)providers;
@end

@interface PipelineGetRegionsResult : NSObject
/// 可选地域总数
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// Regions
 @property (strong,nonatomic,nonnull)  NSArray<NameLabelPair*>*  regions;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotalCount:(NSNumber*) totalCount

    regions:(NSArray<NameLabelPair*>*)regions;
@end

@interface PipelineGetRegionsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetRegionsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetRegionsResult*) result;
@end

@interface PipelineGetSourceProvidersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetSourceProvidersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetSourceProvidersResult*) result;
@end

@interface PipelineManualActionResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineManualActionResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineManualActionResult*) result;
@end

@interface PipelineGetPipelineInstanceResult : NSObject
/// PipelineInstance
 @property (strong,nonatomic,nonnull)  PipelineInstance*  pipelineInstance;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPipelineInstance:(PipelineInstance*) pipelineInstance;
@end

@interface PipelineGetPipelineInstanceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetPipelineInstanceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetPipelineInstanceResult*) result;
@end

@interface PipelineGetPipelineInstancesByUuidsResult : NSObject
/// PipelineInstances
 @property (strong,nonatomic,nonnull)  NSArray<PipelineInstance*>*  pipelineInstances;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPipelineInstances:(NSArray<PipelineInstance*>*) pipelineInstances;
@end

@interface PipelineGetPipelineInstancesByUuidsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetPipelineInstancesByUuidsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetPipelineInstancesByUuidsResult*) result;
@end

@interface PipelineGetPipelineInstancesResult : NSObject
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// Instances
 @property (strong,nonatomic,nonnull)  NSArray<PipelineInstance*>*  instances;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotalCount:(NSNumber*) totalCount

    instances:(NSArray<PipelineInstance*>*)instances;
@end

@interface PipelineGetPipelineInstancesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetPipelineInstancesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetPipelineInstancesResult*) result;
@end

@interface PipelineStopPipelineInstanceResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineStopPipelineInstanceResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineStopPipelineInstanceResult*) result;
@end

@interface PipelineGetPipelineInstancesByUuidsRequest:JDCloudRequest

/// 流水线执行实例ID，多个ID用逗号分隔
@property (strong,nonatomic,nonnull)  NSString*  uuids;
/// 流水线执行的状态，如果isSimple是true，只显示每个stage的状态, 而stage中的action状态将被忽略
@property (strong,nonatomic,nonnull)  NSNumber*  isSimple;
/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// Sorts
@property (strong,nonatomic,nonnull)  NSArray<Sort*>*  sorts;
/// 根据流水线名称查询
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
uuids:(NSString*)uuids
isSimple:(NSNumber*)isSimple
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
sorts:(NSArray<Sort*>*)sorts
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
uuids:(NSString*)uuids
isSimple:(NSNumber*)isSimple
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
sorts:(NSArray<Sort*>*)sorts
filters:(NSArray<Filter*>*)filters;

@end

@interface PipelineReadFileResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineReadFileResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineReadFileResult*) result;
@end

@interface PipelineReadFileRequest:JDCloudRequest

@end

@interface PipelineGetLimitsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetLimitsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetLimitsResult*) result;
@end

@interface PipelineGetLimitsRequest:JDCloudRequest

@end

@interface PipelineStartPipelineResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineStartPipelineResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineStartPipelineResult*) result;
@end

@interface PipelineGetPipelineResult : NSObject
/// Pipeline
 @property (strong,nonatomic,nonnull)  Pipeline*  pipeline;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPipeline:(Pipeline*) pipeline;
@end

@interface PipelineUpdatePipelineResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineUpdatePipelineResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineUpdatePipelineResult*) result;
@end

@interface PipelineGetPipelinesResult : NSObject
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;
/// Pipelines
 @property (strong,nonatomic,nonnull)  NSArray<SimplePipeline*>*  pipelines;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithTotalCount:(NSNumber*) totalCount

    pipelines:(NSArray<SimplePipeline*>*)pipelines;
@end

@interface PipelineGetPipelinesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetPipelinesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetPipelinesResult*) result;
@end

@interface PipelineDeletePipelineResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineDeletePipelineResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineDeletePipelineResult*) result;
@end

@interface PipelineCreatePipelineRequest:JDCloudRequest

/// Data
@property (strong,nonatomic,nonnull)  PipelineParams*  data;
-(id) initWithRegion:(NSString *)regionId
data:(PipelineParams*)data;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
data:(PipelineParams*)data;

@end

@interface PipelineCreatePipelineResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineCreatePipelineResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineCreatePipelineResult*) result;
@end

@interface PipelineGetPipelineResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PipelineGetPipelineResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PipelineGetPipelineResult*) result;
@end

@interface PipelineUpdatePipelineRequest:JDCloudRequest

/// Data
@property (strong,nonatomic,nonnull)  PipelineParams*  data;
/// 流水线任务 uuid
@property (strong,nonatomic,nonnull)  NSString*  uuid;
-(id) initWithRegion:(NSString *)regionId
data:(PipelineParams*)data
uuid:(NSString*)uuid;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
data:(PipelineParams*)data
uuid:(NSString*)uuid;

@end

@interface PipelineGetPipelinesRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为10；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// Sorts
@property (strong,nonatomic,nonnull)  NSArray<Sort*>*  sorts;
/// 根据流水线名称查询
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
sorts:(NSArray<Sort*>*)sorts
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
sorts:(NSArray<Sort*>*)sorts
filters:(NSArray<Filter*>*)filters;

@end

#endif /* PipelineApiModel_h */
